package com;

class Apple {
    // ? 解决方案一：静态变量加载顺序导致程序bug，可以切换位置来保证代码使用的时候正确
    // static double price = 20.00;
    static Apple apple = new Apple(10);
    // ! 因为加载顺序的问题，所以会有bug，输出为-10
    static double price = 20.00;

    // ? 解决方案二：使用final修饰，保证加载顺序正确，这个时候不论在之前还是之后获取到的都是正确的
    // static final double price = 20.00;
    double totalpay;

    public Apple(double discount) {
        System.out.println("====" + price);
        totalpay = price - discount;
    }
}

public class 静态变量的加载顺序不同的影响 {
    public static void main(String[] args) {
        System.out.println(Apple.apple.totalpay);
    }
}